This invention generally relates to reading information from optical drives and, in particular, to a method and apparatus for characterizing and improving optical drive performance.
Computing technology continues to evolve at an ever-increasing rate. Once the domain of only high-end computer systems, optical drives such as the compact disk (CD) read-only memory (ROM) drives, digital versatile disk (DVD) drives, and the like are now standard equipment on even the lower-cost, entry-level computers. Indeed, because of their low cost, high storage capacity and access time attributes, some systems are now foregoing inclusion of the once preeminent floppy drives in favor of optical drive technology.
Once these optical drives began appearing in computing systems, having the same generic name (CD player) as their favorite audio component, many computing system users wanted to use these optical drive systems to play their favorite audio (music) discs. What the basic user does not realize, however, is that audio discs and data discs utilize separate and distinct formatting standards that make it very difficult for an optical drive in a computer system to accurately read and render audio data.
The compact disc digital audio standard (CD-DA) (also commonly referred to as the Red Book standard), was defined in early 1980 by Philips, N.V. and Sony Corporation. Under the Red Book standard, audio information is digitized at 44.1 kHz in a range of 65,536 possible values (i.e., 16-bit audio). While the CD-DA disc is organized into frames (24 bytes/frame), the audio data itself is not arranged in any particular units, but rather is interlaced in and among frames to improve tolerance to physical flaws or damage to the media (e.g., a scratch).
The compact disk, read-only memory standard (CD-ROM) (also commonly referred to as the Yellow Book standard), was defined by Philips and Sony in 1983 as an extension to the Red Book standard. The CD-ROM standard differs from the CD-DA standard in a number of respects, perhaps the most notorious of which for purposes of rendering audio data is the manner in which the data is organized on the optical media (disc). Under the CD-ROM standard, data tracks are organized into uniquely identifiable sectors facilitating random access search and retrieval applications. More specifically, data tracks are segmented into 2352 byte sectors, 2048 bytes of which are devoted to data, while 304 bytes are dedicated to header information (e.g., block address information, synchronization information, error correction codes (ECC), and the like). This header information enables the optical drive system to accurately seek out sectors on an individual basis (i.e., by reading the header information). When viewing an audio track under the sectorized CD-ROM paradigm, however, the audio information consumes the entire 2352 bytes of the sector, i.e., an audio disc track does not include this 304-byte header block. Consequently, an accurate seek to a specific location within an audio track is very difficult. Indeed, the Red Book standard considers a deviation of xc2x175 sectors (or xc2x17350 frames, or xc2x1176,400 bytes, or xc2x10.5 seconds), which would be perceptible to the human ear. Indeed, an offset of even 0.25 seconds is perceptible to the human ear. One of the reasons for this seemingly xe2x80x9claxxe2x80x9d standard is that it is quite rare for an end user to need to be able to instantly jump to a particular point within an audio track.
The typical errors that arise when trying to make such a precise (or accurate) read of audio tracks with a CD-ROM optical drive include: not reading audio data on sector boundaries (i.e., 2352 byte boundaries) (i.e., inaccurate reads), reading different data for the same request at different times (i.e., reading sector 2 then re-reading sector 2 and getting different audio data), overlapping or skipping a small subset of bytes for reads that should have continuous bytes (contiguous reads), and other accuracy problems. These limitations of the optical drive systems in accurately rendering audio media often resulted in undesirable user-perceptible audio artifacts, e.g., pops, holes, etc.
To overcome these limitations, and to attempt to ensure user-acceptable audio, many optical drive systems utilize a stitching technique when rendering audio content. That is, the optical drive system would perform multiple reads of a sector, or groups of sectors, and load the information into a buffer, analyze the buffered data to identify overlapping data between the read samples, and statistically reconstruct the sectors by fusing the overlapping data. Stitching has a number of drawbacks, however, including the storage capacity required to handle the multiple samples, the number of reads that must be performed to stitch together the resultant audio track, and the overall processing complexity required to analyze the samples and piece together the audio tracks.
The need for accurate reads of digital audio content from optical media has increased, as more applications require accurate digital audio (i.e., MP3 applications, Digital Audio Playback under Windows(copyright) 98 and Windows(copyright) 2000). Given the prior art techniques employed by the various optical drive manufacturers, there was no way to know a priori what to expect from a READ command, especially since a drive""s firmware may have implemented a caching algorithm that would prevent simple re-reads of the same sector as test of accuracy.
Thus, a method and apparatus of quantifiably characterizing and improving optical drive performance for rendering digital audio is required, unencumbered by the inherent limitations commonly associated with the prior art. Just such a solution is provided in the description to follow.
This invention concerns a method and apparatus for characterizing and improving optical drive performance. In this regard, the present invention is comprised of an innovative audio file stored on optical media (characterization file), and an optical drive characterization agent, implemented on a computing system. According to a first aspect of the present invention, the optical drive characterization agent iteratively controls the optical drive to perform incremental reads of at least a subset of the characterization file, analyzes read subset of the characterization file, and generates one or more performance scores on an associated one or more performance attributes of the optical drive. In this regard, optical drive characterization agent quantifiably characterizes an optical drive""s ability to accurately read individual sectors from optical media comprising audio content. Once the drive""s performance has been characterized, characterization agent identifies and maintains quantifiable offsets, as appropriate, to improve optical drive read performance.
In accordance with another aspect of the present invention, an optical drive characterization file is presented. The characterization file is comprised of a non-repeating pattern of audio data at least twice the length of a non-obvious offset for contiguous reads. According to one embodiment, the characterization agent has a priori knowledge of the non-repeating pattern of audio data comprising the characterization file. According to an alternate embodiment, the characterization agent does not have a priori knowledge of content of the non-repeating pattern, but rather of a set of rules used to generate the non-repeating pattern comprising the characterization file, and dynamically tests the read data against these set of rules.